<ResourceDictionary 
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >

  <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="Shared.xaml" />
  </ResourceDictionary.MergedDictionaries>

  <!-- SimpleStyles: ListView -->
  <Style x:Key="{x:Static GridView.GridViewScrollViewerStyleKey}"
         TargetType="ScrollViewer">
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="ScrollViewer">
          <Grid Background="{TemplateBinding Background}">
            <Grid.ColumnDefinitions>
              <ColumnDefinition Width="*"/>
              <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
              <RowDefinition Height="*"/>
              <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>

            <DockPanel Margin="{TemplateBinding Padding}">
              <ScrollViewer DockPanel.Dock="Top"
                HorizontalScrollBarVisibility="Hidden"
                VerticalScrollBarVisibility="Hidden"
                Focusable="false">
                <GridViewHeaderRowPresenter
                  Columns="{Binding Path=TemplatedParent.View.Columns,
                            RelativeSource={RelativeSource TemplatedParent}}"
                  ColumnHeaderContainerStyle="{Binding
                               Path=TemplatedParent.View.ColumnHeaderContainerStyle,
                               RelativeSource={RelativeSource TemplatedParent}}"
                  ColumnHeaderTemplate="{Binding
                               Path=TemplatedParent.View.ColumnHeaderTemplate,
                               RelativeSource={RelativeSource TemplatedParent}}"
                  ColumnHeaderTemplateSelector="{Binding 
                               Path=TemplatedParent.View.ColumnHeaderTemplateSelector,
                               RelativeSource={RelativeSource TemplatedParent}}"
                  AllowsColumnReorder="{Binding
                               Path=TemplatedParent.View.AllowsColumnReorder,
                               RelativeSource={RelativeSource TemplatedParent}}"
                  ColumnHeaderContextMenu="{Binding
                               Path=TemplatedParent.View.ColumnHeaderContextMenu,
                               RelativeSource={RelativeSource TemplatedParent}}"
                  ColumnHeaderToolTip="{Binding
                               Path=TemplatedParent.View.ColumnHeaderToolTip,
                               RelativeSource={RelativeSource TemplatedParent}}"
                  SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
              </ScrollViewer>

              <ScrollContentPresenter Name="PART_ScrollContentPresenter"
                KeyboardNavigation.DirectionalNavigation="Local"/>
            </DockPanel>

            <ScrollBar Name="PART_HorizontalScrollBar"
              Orientation="Horizontal"
              Grid.Row="1"
              Maximum="{TemplateBinding ScrollableWidth}"
              ViewportSize="{TemplateBinding ViewportWidth}"
              Value="{TemplateBinding HorizontalOffset}"
              Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"/>

            <ScrollBar Name="PART_VerticalScrollBar"
              Grid.Column="1"
              Maximum="{TemplateBinding ScrollableHeight}"
              ViewportSize="{TemplateBinding ViewportHeight}"
              Value="{TemplateBinding VerticalOffset}"
              Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"/>

          </Grid>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>
    
    
  <Style x:Key="GridViewColumnHeaderGripper" TargetType="Thumb">
    <Setter Property="Width" Value="18"/>
    <Setter Property="Background" Value="{StaticResource NormalBorderBrush}"/>
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type Thumb}">
          <Border Padding="{TemplateBinding Padding}"
            Background="Transparent">
            <Rectangle HorizontalAlignment="Center"
              Width="1"
              Fill="{TemplateBinding Background}"/>
          </Border>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>

  <Style x:Key="{x:Type GridViewColumnHeader}"
         TargetType="GridViewColumnHeader">
    <Setter Property="HorizontalContentAlignment" Value="Center"/>
    <Setter Property="VerticalContentAlignment" Value="Center"/>
    <Setter Property="Foreground"
            Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="GridViewColumnHeader">
          <Grid>
            <Border Name="HeaderBorder"
              BorderThickness="0,0,0,1"
              BorderBrush="{StaticResource NormalBorderBrush}"
              Background="{StaticResource LightBrush}"
              Padding="5,4,5,4">
              <ContentPresenter Name="HeaderContent"
                Margin="0,0,0,1"
                VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                RecognizesAccessKey="True"
                SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
            </Border>
            <Thumb x:Name="PART_HeaderGripper"
              HorizontalAlignment="Right"
              Margin="0,0,-9,0"
              Style="{StaticResource GridViewColumnHeaderGripper}"/>
          </Grid>
          <ControlTemplate.Triggers>
            <Trigger Property="IsMouseOver" Value="true">
              <Setter TargetName="HeaderBorder"
                      Property="Background" Value="{StaticResource NormalBrush}"/>
            </Trigger>
            <Trigger Property="IsPressed" Value="true">
              <Setter TargetName="HeaderBorder"
                      Property="Background" Value="{StaticResource PressedBrush}"/>
              <Setter TargetName="HeaderContent"
                      Property="Margin" Value="1,1,0,0"/>
            </Trigger>
            <Trigger Property="IsEnabled" Value="false">
              <Setter Property="Foreground"
                      Value="{DynamicResource {x:Static SystemColors.GrayTextBrushKey}}"/>
            </Trigger>
          </ControlTemplate.Triggers>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
    <Style.Triggers>
      <Trigger Property="Role" Value="Floating">
        <Setter Property="Opacity" Value="0.7"/>
        <Setter Property="Template">
          <Setter.Value>
            <ControlTemplate TargetType="GridViewColumnHeader">
              <Canvas Name="PART_FloatingHeaderCanvas">
                <Rectangle Fill="#60000000"
                  Width="{TemplateBinding ActualWidth}"
                  Height="{TemplateBinding ActualHeight}"/>
              </Canvas>
            </ControlTemplate>
          </Setter.Value>
        </Setter>
      </Trigger>
      <Trigger Property="Role" Value="Padding">
        <Setter Property="Template">
          <Setter.Value>
            <ControlTemplate TargetType="GridViewColumnHeader">
              <Border Name="HeaderBorder"
                BorderThickness="0,1,0,1"
                BorderBrush="{StaticResource NormalBorderBrush}"
                Background="{StaticResource LightBrush}"/>
            </ControlTemplate>
          </Setter.Value>
        </Setter>
      </Trigger>
    </Style.Triggers>
  </Style>

  <Style x:Key="{x:Type ListView}" TargetType="ListView">
    <Setter Property="SnapsToDevicePixels" Value="true"/>
    <Setter Property="OverridesDefaultStyle" Value="true"/>
    <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
    <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
    <Setter Property="ScrollViewer.CanContentScroll" Value="true"/>
    <Setter Property="VerticalContentAlignment" Value="Center"/>
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="ListView">
          <Border Name="Border"
            BorderThickness="1"
            BorderBrush="{StaticResource SolidBorderBrush}"
            Background="{StaticResource WindowBackgroundBrush}">
            <ScrollViewer Style="{DynamicResource
                          {x:Static GridView.GridViewScrollViewerStyleKey}}">
              <ItemsPresenter />
            </ScrollViewer>
          </Border>
          <ControlTemplate.Triggers>
            <Trigger Property="IsGrouping"
                     Value="true">
              <Setter Property="ScrollViewer.CanContentScroll"
                      Value="false"/>
            </Trigger>
            <Trigger Property="IsEnabled"
                     Value="false">
              <Setter TargetName="Border"
                      Property="Background"
                      Value="{StaticResource DisabledBorderBrush}"/>
            </Trigger>
          </ControlTemplate.Triggers>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>

  <Style x:Key="{x:Type ListViewItem}" TargetType="ListViewItem">
    <Setter Property="SnapsToDevicePixels" Value="true"/>
    <Setter Property="OverridesDefaultStyle" Value="true"/>
    <Setter Property="HorizontalContentAlignment" Value="Stretch"/>  
    <Setter Property="VerticalContentAlignment" Value="Stretch"/>
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="ListBoxItem">
          <Border 
            Name="Border"
            Padding="2"
            SnapsToDevicePixels="true"
            Background="{TemplateBinding Background}">
            <GridViewRowPresenter
              VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
          </Border>
          <ControlTemplate.Triggers>
            <Trigger Property="IsSelected" Value="true">
              <Setter TargetName="Border" Property="Background" Value="{StaticResource SelectedBackgroundBrush}"/>
              <Setter TargetName="Border" Property="BorderBrush" Value="{StaticResource SelectedBorderBrush}"/>
              <Setter TargetName="Border" Property="BorderThickness" Value="0,1,0,1"/>
              <Setter TargetName="Border" Property="Padding" Value="2,1,2,1"/>
            </Trigger>
            <Trigger Property="IsEnabled" Value="false">
              <Setter Property="Foreground" 
                      Value="{StaticResource DisabledForegroundBrush}"/>
            </Trigger>
          </ControlTemplate.Triggers>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
    <Style.Triggers>
      <Trigger Property="ItemsControl.AlternationIndex" Value="0">
        <Setter Property="Background">
          <Setter.Value>
             <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
              <GradientBrush.GradientStops>
                <GradientStopCollection>
                  <GradientStop Color="#DFECB0" Offset="0.0"/>
                  <GradientStop Color="#D7E6AA" Offset="1.0"/>
                </GradientStopCollection>
              </GradientBrush.GradientStops>
            </LinearGradientBrush>
          </Setter.Value>
        </Setter>
      </Trigger>
      <Trigger Property="ItemsControl.AlternationIndex" Value="1">
        <Setter Property="Background">
          <Setter.Value>
             <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
              <GradientBrush.GradientStops>
                <GradientStopCollection>
                  <GradientStop Color="#FFFEEB" Offset="0.0"/>
                  <GradientStop Color="#FFFEE4" Offset="1.0"/>
                </GradientStopCollection>
              </GradientBrush.GradientStops>
            </LinearGradientBrush>
          </Setter.Value>
        </Setter>
      </Trigger>
      <Trigger Property="ItemsControl.AlternationIndex" Value="2">
        <Setter Property="Background">
          <Setter.Value>
             <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
              <GradientBrush.GradientStops>
                <GradientStopCollection>
                  <GradientStop Color="#D8F1F1" Offset="0.0"/>
                  <GradientStop Color="#D0ECEA" Offset="1.0"/>
                </GradientStopCollection>
              </GradientBrush.GradientStops>
            </LinearGradientBrush>
          </Setter.Value>
        </Setter>
      </Trigger>
    </Style.Triggers>
  </Style>
</ResourceDictionary>